import { actions } from "mirrorx";
// 引入services，如不需要接口请求可不写
import * as api from "./service";
// 接口返回数据公共处理方法，根据具体需要
import { processData, processData1 } from "utils";
import moment from 'moment';

/**
 *          btnFlag为按钮状态，新增、修改是可编辑，查看详情不可编辑，
 *          新增表格为空
 *          修改需要将行数据带上并显示在卡片页面
 *          查看详情携带行数据但是表格不可编辑
 *          0表示新增、1表示编辑，2表示查看详情 3提交
 *async loadList(param, getState) {
 *          rowData为行数据
*/


export default {
    // 确定 Store 中的数据模型作用域
    name: "PurchaseOrderTraceForm",
    // 设置当前 Model 所需的初始化 state
    initialState: {
        rowData:{},
        showLoading:false,
        list: [],
        newRowData:{},
        oldRowData: {},
        orderTypes:[],
        childList: [],
        pageIndex:1,
        pageSize:10,
        totalPages:1,
        total:0,
        detail:{},
        searchParam:{},
        queryParam: {
            pageParams: {
                searchExtend:{}
            },
            // groupParams: [],
            whereParams: {}
        },
        validateNum:99,//不存在的step

    },
    reducers: {
        /**
         * 纯函数，相当于 Redux 中的 Reducer，只负责对数据的更新。
         * @param {*} state
         * @param {*} data
         */
        updateState(state, data) { //更新state
            return {
                ...state,
                ...data
            };
        }
    },
    effects: {
        /**
         * 加载列表数据
         * @param {*} param
         * @param {*} getState
         */
        async loadList(param, getState) {
            // 正在加载数据，显示加载 Loading 图标
            actions.PurchaseOrderTraceForm.updateState({showLoading: true});
            // 调用 getList 请求数据
            let _param = param || getState().PurchaseOrderTraceForm.queryParam;
            let res = processData(await api.getList(param));
            //let {data:res}=result;
            let _state = {
                showLoading: false,
                queryParam: _param //更新搜索条件
            }
            if (res) {
                _state = Object.assign({}, _state, {
                    list: res,
                    pageIndex: res.number + 1,
                    totalPages: res.totalPages,
                    total: res.totalElements,
                    pageSize: res.size,
                })
            }
            actions.PurchaseOrderTraceForm.updateState(_state);
        },

        async getSelectData(param, getState) {
            // 正在加载数据，显示加载 Loading 图标
            actions.PurchaseOrderTraceForm.updateState({ showLoading:true })
            //调用 getList 请求数据
            let res = processData(await api.getSelectData(param));

            if(res) {
                actions.PurchaseOrderTraceForm.updateState({
                    selectDataList: res,
                    showLoading:false
                });
            }
        },

        async queryDeal(param, getState) {
            // 正在加载数据，显示加载 Loading 图标
            actions.PurchaseOrderTraceForm.updateState({ showLoading: true })
            //调用 getList 请求数据
            let res = processData(await api.queryDeal(param));

            actions.PurchaseOrderTraceForm.updateState({
                dealList: res,
                showLoading: false
            });
        },

        
    }
};